﻿using System.Collections.Generic;

namespace PortableVersion.Core.FileSystem.Services
{
    public interface IConflictResolutionService<T> where T : IVersioningItem
    {
        void ClearConflictAction();
        void DeleteConflictAction(ConflictItem conflictStateItem);
        void AddConflictAction(Diff<T> conflict, ConflictAction conflictAction);
        ConflictState ConflictState { get; }
        void QueueConflict(Diff<T> conflict);
        void LoadState(string combine);
        IEnumerable<Diff<T>> GetUnhandledConflicts();
        IEnumerable<DiffApplicationResult> ResolveAllConflicts();
        void ApplyActions(List<ConflictItem> actions);
        void SaveState(string path);
        void SetRootPaths(string fromPath, string toPath);
    } 
}